<?php
// +----------------------------------------------------------------------
// | OneThink [ WE CAN DO IT JUST THINK IT ]
// +----------------------------------------------------------------------
// | Copyright (c) 2013 http://www.onethink.cn All rights reserved.
// +----------------------------------------------------------------------
// | Author: 麦当苗儿 <zuojiazi@vip.qq.com> <http://www.zjzit.cn>
// +----------------------------------------------------------------------

namespace Home\Controller;

/**
 * 文件控制器
 * 主要用于下载模型的文件上传和下载
 */
class FileController extends HomeController
{
	/* 文件上传 */
	public function upload()
	{
		$return = array('status' => 1, 'info' => '上传成功', 'data' => '');
		/* 调用文件上传组件上传文件 */
		$File = D('File');
		$file_driver = C('DOWNLOAD_UPLOAD_DRIVER');
		$info = $File->upload(
			$_FILES,
			C('DOWNLOAD_UPLOAD'),
			C('DOWNLOAD_UPLOAD_DRIVER'),
			C("UPLOAD_{$file_driver}_CONFIG")
		);

		/* 记录附件信息 */
		if ($info) {
			$return['data'] = think_encrypt(json_encode($info['download']));
		} else {
			$return['status'] = 0;
			$return['info'] = $File->getError();
		}

		/* 返回JSON数据 */
		$this->ajaxReturn($return);
	}

	/* 下载文件 */
	public function download($id = null)
	{
		if (empty($id) || !is_numeric($id)) {
			$this->error('参数错误！');
		}

		$logic = D('Download', 'Logic');
		if (!$logic->download($id)) {
			$this->error($logic->getError());
		}
	}

	/**
	 * 上传图片
	 * @author huajie <banhuajie@163.com>
	 */
	public function uploadPicture()
	{
		//TODO: 用户登录检测
		$max_kb = $_REQUEST['max_kb'] ? $_REQUEST['max_kb'] : 0;//0：不限制上传图片大小，大于0：限制上传图片大小（单位：kb）
		if ($max_kb > 0) {
			$size = $_FILES['download']['size'];//上传图片的字节大小
			$type = $_FILES['download']['type'];//图片类型

			if($type != 'image/jpeg' && $type != 'image/png'){
				$return = array('status' => 2, 'info' => '仅支持上传 jpg/png 格式图片', 'data' => '');
				$this->ajaxReturn($return);
			}
			if($size > 200 * 1024){
				$return = array('status' => 2, 'info' => '上传图片请勿大于200KB', 'data' => '');
				$this->ajaxReturn($return);
			}
		}
		/* 返回标准数据 */
		$return = array('status' => 1, 'info' => '上传成功', 'data' => '');
		/* 调用文件上传组件上传文件 */
		$Picture = D('Picture');
		$pic_driver = C('PICTURE_UPLOAD_DRIVER');

		$info = $Picture->upload(
			$_FILES,
			C('PICTURE_UPLOAD'),
			C('PICTURE_UPLOAD_DRIVER'),
			C("UPLOAD_{$pic_driver}_CONFIG")
		); //TODO:上传到远程服务器

		/* 记录图片信息 */
		if ($info) {
			$return['status'] = 1;
			$return = array_merge($info['download'], $return);
		} else {
			$return['status'] = 0;
			$return['info'] = $Picture->getError();
		}

		/* 返回JSON数据 */
		$this->ajaxReturn($return);

	}
}
